package jin.competition.jan04;

import java.math.BigDecimal;
import java.math.MathContext;

public class JqyCo {
	public static int max(int a,int b){
		if(a<b){
			a=b;
		}
		//else {b=a;}
		return a;
	}
	public static double add(double value1,double value2){
		BigDecimal b1 = new BigDecimal(Double.valueOf(value1));
		BigDecimal b2 = new BigDecimal(Double.valueOf(value2));
		return b1.add(b2).doubleValue();
		}
		/**
		 * 提供精确减法运算的sub方法
		 * @param value1 被减数
		 * @param value2 减数
		 * @return 两个参数的差
		 */
		public static double sub(double value1,double value2){
		BigDecimal b1 = new BigDecimal(Double.valueOf(value1));
		BigDecimal b2 = new BigDecimal(Double.valueOf(value2));
		return b1.subtract(b2).doubleValue();
		}
		/**
		 * 提供精确乘法运算的mul方法
		 * @param value1 被乘数
		 * @param value2 乘数
		 * @return 两个参数的积
		 */
		public static double mul(double value1,double value2){
		BigDecimal b1 = new BigDecimal(Double.valueOf(value1));
		BigDecimal b2 = new BigDecimal(Double.valueOf(value2));
		return b1.multiply(b2).doubleValue();
		}
		/**
		 * 提供精确的除法运算方法div
		 * @param value1 被除数
		 * @param value2 除数
		 * @param scale 精确范围
		 * @return 两个参数的商
		 * @throws IllegalAccessException
		 */
		public static double div(double value1,double value2,int scale) throws IllegalAccessException{
		//如果精确范围小于0，抛出异常信息
		if(scale<0){ 
		  throw new IllegalAccessException("精确度不能小于0");
		}
		BigDecimal b1 = new BigDecimal(Double.valueOf(value1));
		BigDecimal b2 = new BigDecimal(Double.valueOf(value2));
		return b1.divide(b2, scale).doubleValue();
		}

	public static void main(String[] args) throws IllegalAccessException {
		// TODO Auto-generated method stub
		double k=99;
		int num1=55, num2=8, num3=99;
		System.out.println("最大的变量为"+max(max(num1,num2),num3));
		double result=((double)(88*1.88)+5.12-(double)(66/12)+5.3);
		
//		double r1=(double)(66/12);
//		System.out.println(88*1.88+5.12-(66/12)+5.3);
//		System.out.println(String.format("%.9f", result));
//		
//		BigDecimal a = new BigDecimal("88");
//		BigDecimal b = new BigDecimal("1.88");
//		BigDecimal c = new BigDecimal("5.12");
//		BigDecimal d = new BigDecimal("66");
//		BigDecimal e = new BigDecimal("12");
//		BigDecimal f = new BigDecimal("5.3");
//		
//		
//		BigDecimal n1 = a.multiply(b);// 乘   88*1.88
//		BigDecimal n2 = n1.add(c);// 加  88*1.88+5.12
//		
//		BigDecimal n3 = d.divide(e, MathContext.DECIMAL32);// 除66/12
//		BigDecimal n4 = n2.subtract(n3);// 减
//		BigDecimal n5 = n2.add(n4);// 加
//		BigDecimal n6 = n5.add(f);
//		System.out.println(n5);
		double res1=mul(88,1.88);//88*1.88
		double res2=add(res1,5.12);//88*1.88+5.12
		//double res3=div((double)66,12,8);//66/12
		double res3=(double)66/12;
		double res4=sub(res2,res3);//88*1.88+5.12-66/12
		double res5=add(res4,5.3);
		//System.out.println(res1);
		//System.out.println(res2);
		//System.out.println(res3);
		System.out.println("88*1.88+5.12-66/12+5.3的结果为"+res5);
		//System.out.println(result);
		System.out.println(88*1.88+5.12-(66/12)+5.3);
	}

}
/*竞赛：

1.声明并且赋值，一个double 类型的变量。

2.有三个变量，值分别是：55，8，99，用程序找出值最大的变量，并且打印。

3.输入：88，5.12，66，5.3，12，1.88 得到：88*1.88+5.12-66/12+5.3的结果*/